/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managers;

import conexionBD.ConexionServidor;
import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author jose
 */
@ManagedBean
@SessionScoped
public class managerCrearExpediente implements Serializable {

    private int numeroSolicitudd;
    private boolean documentoDui;
    private boolean documentoNit;
    private boolean documentoEscritura;
    private boolean documentoCalificacion;
    private boolean documentoMemoria;
    private String nombre;
    private String numExpediente;
    
    FacesContext context;

    /** Creates a new instance of managerCrearExpediente */
    public managerCrearExpediente() {
       
    }

    public boolean isDocumentoCalificacion() {
        return documentoCalificacion;
    }

    public void setDocumentoCalificacion(boolean documentoCalificacion) {
        this.documentoCalificacion = documentoCalificacion;
    }

    public boolean isDocumentoDui() {
        return documentoDui;
    }

    public void setDocumentoDui(boolean documentoDui) {
        this.documentoDui = documentoDui;
    }

    public boolean isDocumentoEscritura() {
        return documentoEscritura;
    }

    public void setDocumentoEscritura(boolean documentoEscritura) {
        this.documentoEscritura = documentoEscritura;
    }

    public boolean isDocumentoMemoria() {
        return documentoMemoria;
    }

    public void setDocumentoMemoria(boolean documentoMemoria) {
        this.documentoMemoria = documentoMemoria;
    }

    public boolean isDocumentoNit() {
        return documentoNit;
    }

    public void setDocumentoNit(boolean documentoNit) {
        this.documentoNit = documentoNit;
    }

    public int getNumeroSolicitudd() {
        return numeroSolicitudd;
    }

    public void setNumeroSolicitudd(int numeroSolicitudd) {
        this.numeroSolicitudd = numeroSolicitudd;
    }

    public String getNumExpediente() {
        return numExpediente;
    }

    public void setNumExpediente(String numExpediente) {
        this.numExpediente = numExpediente;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String guardarInformacion() {
        String destino = null;
        numeroSolicitudd = managerModificarSolicitud.numeroSolicitud;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call insersionexpediente(?,?,?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting the parameters to be catched by the stored procedure
            cs.setInt(1, numeroSolicitudd);
            cs.setBoolean(2, documentoDui);
            cs.setBoolean(3, documentoNit);
            cs.setBoolean(4, documentoEscritura);
            cs.setBoolean(5, documentoCalificacion);
            cs.setBoolean(6, documentoMemoria);
            //ejecucion del proceso almacenado
            cs.execute();
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"CREACION DE EXPEDIENTE", "El expediente ha sido creado con exito"));
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();
            buscar();
//            limpiar();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return destino;
    }

    public void buscar() {
        ConexionServidor miConexion = new ConexionServidor();
        try {
            Connection con = miConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select * from infgralexpediente where solingresada = ?");
            ps.setInt(1, numeroSolicitudd);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                //Extraccion de informacion de solicitante
                nombre = rs.getString("tecnico");
                numExpediente = rs.getString("codexpe");
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

    }

    public void limpiar() {
        documentoDui = false;
        documentoNit = false;
        documentoEscritura = false;
        documentoCalificacion = false;
        documentoMemoria = false;
    }
    /* Metodo para sacar mensajes en pantalla*/

    public void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}
